package com.redpack.redpost.struts.form;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import com.redpack.redpost.util.to.generalUtil;

public class newsletterForm extends ActionForm {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String nombre ;
	private String apellidos ;
	private String email ;
	private boolean dato_1 ;
	private boolean dato_2 ;
	private boolean dato_3 ;
	private boolean dato_4 ;
	private boolean dato_5 ;
	private boolean dato_6 ;
	private boolean dato_7 ;
	private boolean dato_8 ;
	private boolean dato_9 ;
	private boolean dato_10 ;
	private boolean dato_11 ;
	private boolean dato_12 ;
	private boolean dato_13 ;
	private boolean dato_14 ;
	private boolean dato_15 ;
	private boolean dato_16 ;
	private boolean dato_17 ;
	private boolean dato_18 ;
	private boolean dato_19 ;
	private boolean dato_20 ;
	private boolean dato_21 ;
	private boolean dato_22 ;
	private boolean dato_23 ;
		
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getApellidos() {
		return apellidos;
	}
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public boolean getDato_1() {
		return dato_1;
	}
	public void setDato_1(boolean dato_1) {
		this.dato_1 = dato_1;
	}
	public boolean getDato_2() {
		return dato_2;
	}
	public void setDato_2(boolean dato_2) {
		this.dato_2 = dato_2;
	}
	public boolean getDato_3() {
		return dato_3;
	}
	public void setDato_3(boolean dato_3) {
		this.dato_3 = dato_3;
	}
	public boolean getDato_4() {
		return dato_4;
	}
	public void setDato_4(boolean dato_4) {
		this.dato_4 = dato_4;
	}
	public boolean getDato_5() {
		return dato_5;
	}
	public void setDato_5(boolean dato_5) {
		this.dato_5 = dato_5;
	}
	public boolean getDato_6() {
		return dato_6;
	}
	public void setDato_6(boolean dato_6) {
		this.dato_6 = dato_6;
	}
	public boolean getDato_7() {
		return dato_7;
	}
	public void setDato_7(boolean dato_7) {
		this.dato_7 = dato_7;
	}
	public boolean getDato_8() {
		return dato_8;
	}
	public void setDato_8(boolean dato_8) {
		this.dato_8 = dato_8;
	}
	public boolean getDato_9() {
		return dato_9;
	}
	public void setDato_9(boolean dato_9) {
		this.dato_9 = dato_9;
	}
	public boolean getDato_10() {
		return dato_10;
	}
	public void setDato_10(boolean dato_10) {
		this.dato_10 = dato_10;
	}
	public boolean getDato_11() {
		return dato_11;
	}
	public void setDato_11(boolean dato_11) {
		this.dato_11 = dato_11;
	}
	public boolean getDato_12() {
		return dato_12;
	}
	public void setDato_12(boolean dato_12) {
		this.dato_12 = dato_12;
	}
	public boolean getDato_13() {
		return dato_13;
	}
	public void setDato_13(boolean dato_13) {
		this.dato_13 = dato_13;
	}
	public boolean getDato_14() {
		return dato_14;
	}
	public void setDato_14(boolean dato_14) {
		this.dato_14 = dato_14;
	}
	public boolean getDato_15() {
		return dato_15;
	}
	public void setDato_15(boolean dato_15) {
		this.dato_15 = dato_15;
	}
	public boolean getDato_16() {
		return dato_16;
	}
	public void setDato_16(boolean dato_16) {
		this.dato_16 = dato_16;
	}
	public boolean getDato_17() {
		return dato_17;
	}
	public void setDato_17(boolean dato_17) {
		this.dato_17 = dato_17;
	}
	public boolean getDato_18() {
		return dato_18;
	}
	public void setDato_18(boolean dato_18) {
		this.dato_18 = dato_18;
	}
	public boolean getDato_19() {
		return dato_19;
	}
	public void setDato_19(boolean dato_19) {
		this.dato_19 = dato_19;
	}
	public boolean getDato_20() {
		return dato_20;
	}
	public void setDato_20(boolean dato_20) {
		this.dato_20 = dato_20;
	}
	public boolean getDato_21() {
		return dato_21;
	}
	public void setDato_21(boolean dato_21) {
		this.dato_21 = dato_21;
	}
	public boolean getDato_22() {
		return dato_22;
	}
	public void setDato_22(boolean dato_22) {
		this.dato_22 = dato_22;
	}
	public boolean getDato_23() {
		return dato_23;
	}
	public void setDato_23(boolean dato_23) {
		this.dato_23 = dato_23;
	}
	
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
		
		ActionErrors errors = new ActionErrors() ;
		
		HttpSession session = request.getSession( ) ;
		String idioma = "";
		
	
		if (session.getAttribute("idioma") != null && session.getAttribute("idioma") != ""){
			idioma = session.getAttribute("idioma").toString();
	
		}
		
		
		if (nombre == null || nombre.trim().length() == 0) {
            
            if(idioma.equals("")){
            	errors.add("NombreVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.nombre"));
			}
			if(idioma.equals("Eng")){
				errors.add("NombreVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.nombreEng"));
			}
			
			GetFormulario(request);
			
			return errors ;
			
        }
		
		if (apellidos == null || apellidos.trim().length() == 0) {
            
            if(idioma.equals("")){
            	errors.add("apellidosVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.apellidos"));
			}
			if(idioma.equals("Eng")){
				errors.add("apellidosVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.apellidosEng"));
			}
			
			GetFormulario(request);
			
			return errors ;
        }
		
		if (email == null || email.trim().length() == 0) {
			if(idioma.equals("")){
				errors.add("emailVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.email"));
			}
			if(idioma.equals("Eng")){
				errors.add("emailVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.emailEng"));
			}
			
			GetFormulario(request);
			
			return errors ;
        }
		
		if (email != null && email.trim().length() != 0) {
			
		
		if ( !generalUtil.validateEmail(email) ) {
			if(idioma.equals("")){
				errors.add("emailNoValido", new ActionMessage("com.redpack.redpost.web.errors.modules.registro.emailNoValido"));
			}
			if(idioma.equals("Eng")){
				errors.add("emailNoValido", new ActionMessage("com.redpack.redpost.web.errors.modules.registro.emailNoValidoEng"));
			}
			
			GetFormulario(request);
			
			return errors ;
        }
		
		}
		
		
		if( dato_1 == false && dato_2 == false && dato_3 == false && dato_4 == false && dato_5 == false && dato_6 == false && dato_7 == false &&
			dato_8 == false && dato_9 == false && dato_10 == false && dato_11 == false && dato_12 == false && dato_13 == false && dato_14 == false &&
			dato_15 == false && dato_16 == false && dato_17 == false && dato_18 == false && dato_19 == false && dato_20 == false && dato_21 == false &&
			dato_22 == false && dato_23 == false ) {
			
			if(idioma.equals("")){
				errors.add("emailVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.seleccion"));
			}
			if(idioma.equals("Eng")){
				errors.add("emailVacio", new ActionMessage("com.redpack.redpost.web.errors.modules.newsletter.seleccionEng"));
			}
			
			GetFormulario(request);
			
			return errors ;
		}
		
		
		return errors ;
		
	}

	
	public void GetFormulario(HttpServletRequest request){
		
		request.setAttribute("nombre", ""+getNombre() ) ;
		request.setAttribute("apellidos", ""+getApellidos()) ;
		request.setAttribute("email", ""+getEmail()  ) ;

		

	}


}
